home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Franz PD / Franz PD Disk #135 (1991-08)(Rhein-Sieg-Soft).zip / Franz PD Disk #135 (1991-08)(Rhein-Sieg-Soft).adf / ABC_V1.03 / ABC.Dok < prev    next >
Text File  |  1991-07-23  |  17KB  |  401 lines

  1.  
  2.                                                                    27.4.1991
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.                B e d i e n u n g s a n l e i t u n g
  17.  
  18.  
  19.  
  20.  
  21.  
  22.                              ABC V1.03
  23.  
  24.  
  25.               A m i g a B a s i c - C o n v e r t e r 
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.                        (c) by Henry König
  40.  
  41.                            Bornheide 71
  42.  
  43.                          2000 Hamburg 53
  44.  
  45.  
  46. 1.      Allgemeines
  47.         -----------
  48.         ACHTUNG: Dieses Programm braucht mindestens 1MB Speicher!
  49.         Dieses Programm formt Amiga-Basic-Programme oder GW-Basic-Programme
  50.         (MS-DOS) in GFA-Basic-Programme um. Bei GW-Basic werden zur Zeit nur
  51.         die Befehle berücksichtig die mit Amiga-Basic identisch sind.
  52.         Eine hunterprozentige Anpassung kann weder mit diesem noch mit
  53.         einem anderen Programm erzielt werden, weil das AmigaBasic eine
  54.         schlampige Programmierung fördert. Dieses Programm soll auch nur
  55.         eine Programmierhilfe für Basic-Programmierer sein, die ihre
  56.         Amiga-Basic-Programme in das schnelle und komfortable GFA-Basic
  57.         konvertieren wollen. Eigene Programme umzuformen erfordern nur
  58.         geringe Anpassungen per Hand, weil man ja weiß was das Programm
  59.         machen soll. Bei fremden Programmen (was nicht sein soll) kann schon
  60.         erhebliche Handarbeit erforderlich sein. Einen Großteil des erlaubten
  61.         schlampigen Programmierstils werden durch "ABC" beseitigt oder mit
  62.         Tricks genauso schlampig umgesetzt.
  63.         GFA-Programme sind ca. 5 bis 10x schneller als compilierte Amiga-
  64.         Basic-Programme.
  65.         Eine Umformung ins GFA-Format setzt den Besitz des GFA-Interpreters
  66.         voraus. Das umgeformte Programm muß mit "MERGE" geladen werden.
  67.         Es können auch LISTgeschützte AmigaBasic-Programme wieder LISTbar
  68.         gemacht werden.
  69.         HINWEIS: Sollten Sie dieses Programm einsetzen um fremde Programme
  70.         zu "knacken" oder umzuformen, so verstoßen Sie gegen das Urheber-
  71.         recht.
  72.  
  73. 1.1     Shareware
  74.         ---------
  75.         Diese Version speichert nur 300 Programmzeilen. Die Umwandlung und
  76.         Bildschirmausgabe ist nicht eingeschränkt.
  77.         Für 20,- DM erhalten Sie Ihr persönliches Paßwort. Mit Paßwort ist
  78.         keine Einschränkung vorhanden. Wer nur kleine Programme umformt
  79.         braucht keine Gebühr entrichten.
  80.  
  81. 1.2     Leistungsmerkmale
  82.         =================
  83.  
  84.         Splitting und Korrektur des Amiga-Basic-Programmes
  85.         --------------------------------------------------
  86.         - splittet Amiga-Basic-Programme,
  87.         - ersetzt Zeilennummern in Label,
  88.         - modifiziert FOR-...NEXT-Schleifen,
  89.         - überprüft und ergänzt IF-...THEN-Blöcke,
  90.         - überprüft Aussprünge aus Schleifen,
  91.         - überprüft Ein- und Aussprünge von Unterprogrammen.
  92. 1.2.1   Umfang der Umformung
  93.         --------------------
  94.         AmigaBasic verfügt über ca. 230 Befehlen gegenüber ca. 350 Befehlen
  95.         des GFA-Basic.
  96.         129 Befehle können unverändert übernommen werden,
  97.          16 Befehle sind nicht erforderlich,
  98.           5 Befehle sind nicht vorhanden,
  99.           7 Befehle werden nur teilweise angepaßt. Es werden Hinweise
  100.             gegeben was noch per Hand angepaßt werden muß.
  101.          73 Befehle werden durch dieses Programm ersetzt, angepaßt oder
  102.             mit Ersatz-Befehlen versehen.
  103.  
  104.  
  105.  
  106.  Voraussetzung für eine Umformung
  107.         --------------------------------
  108.         Das AmigaBasic-Programm muß als ASCII-Datei vorliegen.
  109.         Ein unsauber (schlecht) programmiertes AmigaBasic-Programm kann auch
  110.         nur eine mäßige Umformung ergeben. Die Hauptfehler der Amiga-Basic-
  111.         Programmierer:
  112.         - Einspringen in Unterprogramme mit GOTO
  113.         - Auspringen aus Unterprogrammen oder Schleifen
  114.         - Unterprogramme ohne RETURN
  115.         Bei Anfängern könnte man noch Verständnis haben, aber es gibt
  116.         Profis die so programmieren!
  117.         Je sorgfältiger das Quellprogramm programmiert wurde, umso besser
  118.         ist das Ergebnis.
  119.         Beispiele über unsauberes Programmieren sind im Abschnitt 3.
  120.  
  121.         Ergebnisse von Umwandlungen von Amiga-Basic-Programmen
  122.         ------------------------------------------------------
  123.         - 50 % der umgewandelten Programme sind sofort lauffähig
  124.         - 30 % nach geringen Anpassungen per Hand lauffähig
  125.         - 10 % benötigen erhebliche Anpassung, bedingt durch unsaubere
  126.           Programmierung
  127.         - 10 % sind so schlecht (unsauber) programmiert, daß der Autor
  128.           selber Probleme hätte
  129.         - 90 % der Befehle werden angepaßt oder mit Ersatz-Routinen
  130.           versehen
  131.         - bei nicht vorhandenen Befehlen wird ein Hinweis im Programm-
  132.           text eingefügt
  133.         - kann ein Befehl nicht hundertprozentig angepaßt werden, so
  134.           werden Hinweise im Programmtext eingefügt. Außer bei Menü-
  135.           kontrollen. Diese PROCEDUREN müssen per Hand angepaßt werden.
  136.         Die obigen Ergebnisse sind abhängig von der Qualität des Amiga- oder
  137.         GW-Basic-Programmes.
  138. 1.3     Handbuch drucken
  139.         ----------------
  140.         Stellen Sie ihren Drucker mit "Preferences" auf "Left Margin" 10
  141.         und "Right Margin" auf 93 ein wenn Sie einen Heftrand haben wollen.
  142.         Anzahl der Druckzeilen brauchen Sie nicht einstellen.
  143.  
  144.  
  145. 2.      Die Menüs:
  146.         ---------
  147.  
  148. 2.1     Projekt-Menü
  149.         ============
  150.  
  151. 2.1.1   Basic-Programm einlesen
  152.         -----------------------
  153.         Der Quelltext muß als ASCII-Datei vorliegen.
  154. 2.1.2   Programm beenden
  155.         ----------------
  156.         Rückkehr, nach vorheriger Sicherheitsabfrage, zur Workbench.
  157.  
  158.  
  159. 2.2     Umformung
  160.         =========
  161.  
  162. 2.2.1   Zuerst Quelltext splitten
  163.         -------------------------
  164.         Dieser Menüpunkt muß immer ausgeführt werden, wenn eine Umformung
  165.         erfolgen soll. Bei GFA-Basic ist nur ein Befehl je Zeile erlaubt
  166.         und der Amiga-Basic-Spagetti-Code muß angepaßt werden.
  167.         Mit diesem Menüpunkt werden alle Basic-Programme übersichtlicher.
  168.         IF/THEN-Zeilen werden auf ENDIF geprüft. Anweisungen hinter "THEN"
  169.         werden auf "GOTO","CALL" oder auf Variable geprüft und angepaßt.
  170.         FOR/NEXT-Schleifen werden überprüft und angepaßt.
  171.         Der gesplittete Quelltext sollte gespeichert und vor der Umwandlung
  172.         ins GFA-Basic nochmals getestet werden.
  173.         WICHIG: Es dürfen  k e i n e  Basic-Befehle hinter einem REM
  174.         stehen wenn das Programm Zeilennummern enthält.
  175.  
  176.         Lesen Sie unbedingt den Abschnitt 3. Programmierfehler!
  177.  
  178.  
  179. 2.2.2   AmigaBasic-Listschutz entfernen
  180.         -------------------------------
  181.         Haben Sie auch schon einmal ein AmigaBasic-Programm mit LIST-Schutz
  182.         gespeichert und dabei versehentlich Ihr Originalprogramm geschützt?
  183.         Das war ärgerlich, aber nun nicht mehr. Mit diesem Menüpunkt heben
  184.         Sie den LISTschutz Ihres AmigaBasic-Programms wieder auf.
  185.         Ohne Paßwort können aber nur Programme bis 5KB bearbeitet werden.
  186.         Mit Paßwort ist keine Einschränkung vorhanden.
  187.  
  188. 2.2.3   Quellsource nach Zielsource umformen
  189.         ------------------------------------
  190.         Zuerst "Quelltext splitten" aufrufen und das gesplittete Programm
  191.         testen!
  192.         Soweit es mir möglich war habe ich Routinen geschrieben die viele
  193.         Befehle anpassen. Ist eine Anpassung nicht möglich, so werden im
  194.         Quelltext Hinweise (REM's)
  195.  
  196.         - Syntax gemäß Handbuch eintragen
  197.         - Befehl nicht bekannt
  198.         - Befehl nicht erforderlich
  199.         - Variable anpassen
  200.           u. a. m.
  201.  
  202.         eingefügt. Sonstige Fehler werden am Quelltextanfang angefügt.
  203.         Eventuell sollte das Programm vorher nur gesplittet, gespeichert
  204.         und als Amiga-Basic-Programm getestet werden. So können viele Fehler
  205.         durch unsauberes Programmieren schon vorher ausgeschaltet werden.
  206.         Lesen Sie unbedingt den Abschnitt Programmierfehler!
  207.  
  208.  
  209. 2.2.4   Quelltext in Großbuchstaben wandeln
  210.         -----------------------------------
  211.         Dieser Menüpunkt ist u. a. für ABasic-Programme erforderlich, da
  212.         dieses Basic die Basic-Befehle nicht in Großbuchstaben umwandelt und
  213.         mein Programm zwischen Basic-Befehlen, Variablen und Label unter-
  214.         scheiden muß. Diesen Menüpunkt nicht bei AmigaBasic anwenden!
  215.  
  216.  
  217.  
  218. 2.2.5   Quelltext strukturieren
  219.         -----------------------
  220.         Dient zum Einrücken des Quelltextes bei Schleifen, IF/THEN-Abfragen,
  221.         FOR/NEXT und WHILE/WEND. Ist nicht für umgeformte Programme gedacht.
  222.  
  223. 2.2.6   Fehlerliste
  224.         -----------
  225.         Zeigt nur festgestellten Fehler auf dem Bildschirm an.
  226.  
  227. 2.3     Programm ausgeben
  228.         =================
  229. 2.3.1   Programm auf Screen
  230.         -------------------
  231.         Eingelesenen oder teilumgeformten Quelltext anzeigen. Auch ohne
  232.         Paßwort keine Einschränkung.
  233. 2.3.2   Programm auf Drucker
  234.         --------------------
  235.         Eingelesenen oder teilumgeformten Quelltext drucken. Ohne Paßwort
  236.         einschränkte Funktion.
  237. 2.3.3   Ziel-Programm speichern
  238.         -----------------------
  239.         Gesplitteten oder teilumgeformten Quelltext speichern. Der Quelltext
  240.         sollte mit der Endung ".split" oder ".lst" gespeichert werden.
  241.         Ohne Paßwort nur eingeschränkte Funktion.
  242.  
  243.  
  244. 3. Programmbeispiele und Fehler die nicht richtig umgeformt werden können.
  245.    Alle Beispiele stammen aus Amiga-Basic-Programmen.
  246.    -------------------------------------------------------------------------
  247. falsch                   nach der Umformung        richtig
  248.  
  249. taste:                   PROCEDURE taste           PROCEDURE taste
  250. x$=INKEY$                 x$=INKEY$                  taste1:
  251. IF x=0 THEN taste         IF x=0 THEN                x$=INKEY$
  252.                             GOTO taste               IF x=0 THEN
  253.                           ENDIF                        GOTO taste1
  254.                          RETURN                      ENDIF
  255.                                                    RETURN
  256. ----------------------------------------------------------------------------
  257. falsch     IF x = 3 THEN IF y=1 THEN GOTO liste: ELSE .....usw
  258. richtig                                            IF x = 3 THEN
  259.                                                      IF y = 1 THEN
  260.                                                        GOTO liste
  261.                                                      END IF
  262.                                                    ELSE
  263.                                                      ...usw
  264.                                                    END IF
  265. ----------------------------------------------------------------------------
  266. Unterprogramm                                      PROCEDURE unterprogramm
  267. IF x=13 THEN                                         IF x=13 THEN
  268.   GOTO Liste                                           GOSUB Liste
  269. END IF                                                 GOTO ende
  270. Anweisungen                                          END IF
  271. RETURN                                               Anweisungen
  272. Liste:                                               ende:
  273. Anweisungen                                        RETURN
  274. RETURN
  275.  
  276. Eine PROCEDURE (Unterprogramm) darf nicht mit GOTO angesprungen
  277. oder verlassen werden.
  278. ----------------------------------------------------------------------------
  279. WINDOW (1)               OPENW (1)                 WINDOW(1)
  280. ----------------------------------------------------------------------------
  281. GOTO Label:              GOTO Label                GOTO Label
  282. ----------------------------------------------------------------------------
  283. OPEN "r",#2,(namen$+"-R"),35
  284.                          OPEN "r",#2,(namen$+"-R"),35
  285.                                                   OPEN "r",#2,namen$+"-R",35
  286. Dateinamen dürfen nicht eingeklammert werden
  287.  
  288.  
  289. 4. Syntax-übersicht für AmigaBasic, GW-Basic und GFA-Basic
  290. ============================================================================
  291. Aus Platz- und Aktualitätsgründen wurde dieser Teil ausgelagert.
  292.  
  293.  
  294. 5.            Übersicht konvertierter AmigaBasic-Programme
  295.               ============================================
  296.  
  297. Die Bemerkungen sind keine Kritik an die Programmierer sondern Kritik an das
  298. AmigaBasic welches so eine schlampige Programmierung zuläßt!!!
  299.  
  300. Programmname    Quelle  Bemerkung
  301. ----------------------------------------------------------------------------
  302. Amiga-Latein    RW 4    4 Ausprünge aus FOR/NEXT, 26 PROCEDURE-Aufrufe und
  303.                         66 RETURNs, 287 IF- und 281 END IF-Anweisungen,
  304.                         5 Aussprünge aus PROCEDUREn und 2 PROCEDURE-Ansprünge
  305.                         mit GOTO. Vorher überarbeiten.
  306. BitPlanes       Extras  (Noch) nicht lauffähig
  307. Bitte-lesen     Extras  Nach der Umformung sofort lauffähig.
  308. Buchhaltung-80  Unbek.  17 PROCEDURE-Aufrufe und 36 RETURNs. 10 Aussprünge
  309.                         aus PROCEDUREN. Vorher überarbeiten.
  310. Bücherdatei     FRA 51  5 Aussprünge aus PROCEDUREN und FOR/NEXT-
  311.                         Schleifen. Vorher überarbeiten.
  312. ConvertFD       Extras  3 PROCEDURE-Aufrufe, 7 RETURNs und ein Aussprung
  313.                         aus einer PROCEDURE. Vorher überholen.
  314. CLogo           Extras  (Noch) nicht lauffähig, AREA und AREAFILL müssen
  315.                         angepaßt werden.
  316. Dame            M&T     Für die Mauskontrolle ist eine SCREEN-Struktur er-
  317.                         forderlich. Sonst lauffähig.
  318. Demo            Extras  Unterprogramme in SUB-Routinen müssen angepaßt wer-
  319.                         den.
  320. Dreier          Extras  Lauffähig, jedoch AREAFILL, AREA und ein OPENW per
  321.                         Hand anpassen.
  322. Ettikettendruck CAC 12  13 PROCEDURE-Aufrufe und 33 RETURNs, 11 PROCEDURE-
  323.                         Aussprünge. Programm muß vorher üerarbeitet werden.
  324.                         So ein Programm kann unter GFA-Basic nicht laufen.
  325. Farbpalette     M&T     Nach der Umformung sofort lauffähig.
  326. Gewitter        M&T     Nach der Umformung sofort lauffähig.
  327. Kaleidoskop     Extras  Nach der Umformung sofort lauffähig.
  328. Kelch           M&T     Nach der Umformung sofort lauffähig.
  329. Kommunik        Extras  OPEN "COM1:" per Hand anpassen. Keine Fehler.
  330. Mauer           M&T     GOTO-Aussprung aus einem Unterprogramm im Quelltext.
  331.                         Eine Zeile geändert, dann lauffähig.
  332. Regenbogen      M&T     AREA, AREAFILL und CIRCLE (Ellipse) müssen noch an-
  333.                         gepaßt werden.
  334. Speechd         Extras  5 PROCEDURE-Aufrufe, 7 RETURNs, 24 IF- und 25 ENDIFS,
  335.                         Aussprung aus einer PROCEDURE. Einige Variablen sind
  336.                         GFA-Befehle. Zur Anpassung sind gute Programmier-
  337.                         kenntnisse erforderlich!
  338. Spezialdruck    CAC 12  Weniger PROCEDURE-Aufrufe als RETURNs.
  339.                         Diverse PROCEDURE-Aussprünge. Nach 10 Minuten Hand-
  340.                         arbeit lauffähig.
  341. Tunnel          M&T     Nach der Umformung sofort lauffähig.
  342. Wald            M&T     AREA, AREAFILL mußten noch angepaßt werden, dann
  343.                         lauffähig.
  344. ZweiScreens     M&T     FRE(-1) und PTAB mußten entfernt werden, dann
  345.                         lauffähig.
  346. Quellennachweis
  347. ---------------
  348. CAC     = PD-Serie CACTUS #
  349. Extras  = Extras-Diskette des Amiga
  350. FRA     = PD-Serie Franz
  351. M&T     = Programmieren mit AMIGA-BASIC. Buch und Diskette des Verlages
  352.           Markt & Technik
  353. RW      = PD-Serie Rainer Wolf
  354.  
  355.  
  356.  
  357.  
  358.  Schlagwortregister
  359. ----------------------------------------------------------------------------
  360.  Allgemeines.....................................1.
  361.  Ausgabe des Zielsource..........................2.3
  362.  Basic-Programm einlesen.............................2.1.1
  363.  Befehlstabelle..................................4.
  364.  Fehlerliste.....................................2.2.5
  365.  Handbuch ausdrucken.............................1.3
  366.  Leistung........................................1.2
  367.  Listschutz entfernen............................2.2.2
  368.  Lizenzgebühr....................................1.1
  369.  Menüs...........................................2.0
  370.  Programm beenden................................2.1.2
  371.  Programmierfehler...............................3.
  372.  Quelltext splitten..............................2.2.1
  373.  Sharegebühr.....................................1.1
  374.  Strukturieren...................................2.25
  375.  Syntaxtabelle...................................4.
  376.  Umformung.......................................2.2
  377.  
  378. Für Hinweise auf Fehler, sowie für Verbesserungsvorschläge bin ich dankbar.
  379. Als Dankeschön gibt es die neue Version des Programmes. Diskette und
  380. frankierten Rückumschlag nicht vergessen.